import adapter.OracleAdapter;
import dao.Dao;
import database.MySQL;
import database.Oracle;
import util.DBA;

import java.util.List;

/**
 * 适配器模式是一种设计模式，
 * 属于结构型模式的范畴，其核心思想是将一个接口转换成客户希望的另一个接口，
 * 从而使原本不兼容的接口能够协同工作。这一模式如同现实生活中的电源适配器，
 * 能够使不同标准的电器在不同电压的电网中正常运行。
 */
public class Main {

    public static void main(String[] args) {
        // 现在有两个数据库
        MySQL mysql = new MySQL();
        Oracle oracle = new Oracle();

        DBA user = new DBA();
        // 他会MySQL
        List<Object> data = user.getData(mysql);
        System.out.println(data.getClass());

        // 但DBA不会Oracle，无法直接操作
        // user.setDao(oracle);
        // 现在用适配器帮助他使用Oracle
        Dao helper = new OracleAdapter(oracle);
        List<Object> data1 = user.getData(helper);
        System.out.println(data1.getClass());

    }
}